# 内置函数
# del：是一个关键字但也可以按照函数的方式使用
num_list = [1, 2, 3, 4]
del num_list[1]
del (num_list[1])
print(num_list)

# 统计最大、最小值,对于字典只比较key
print(max(num_list))
print(min(num_list))

# 比较大小，字典无法比较
print([1, 1] < [2, 2])
print(("a", "a") < ("b", "b"))

# 切片,元组相同
names = ["a", "b", "c", "d", "e"]
name_spilt = names[1:3]
print(names)
print(name_spilt)

# 算数运算符
# [1, 2, 1, 2, 1, 2, 1, 2]
print([1, 2] * 4)
# (1, 2, 1, 2, 1, 2, 1, 2)
print((1, 2) * 4)
# [1, 2, 3, 4],类似extend，但是+会产生先的list，而extend是添加到原有list不生成新列表
print([1, 2] + [3, 4])
# append会将新列表当做一个元素插入列表，extend则将新列表每一个元素插入目标列表
list_char1 = ["a", "b"]
list_char1.append(["c", "d"])
print(list_char1)
list_char2 = ["a", "b"]
list_char2.extend(["c", "d"])
print(list_char2)

# in、not in 成员运算符
print("a" in ["a", "b", "c"])
print("a" not in ("b", "c"))
print("1" in "1234")
# 字典只能判断key不能判断值
print("a" in {"a": "aaa", "b": "bbb"})

# 完成for循环 for else

# 当循环体中没有break,即循环正常结束则执行else
order_list = ["1", "2", "3"]
for order in order_list:
    print(order)
else:
    print("for end")

# 当循环没有完全执行如遇到break，则不会执行else
address_list = ["a", "b", "c"]
for address in address_list:
    if address == "b":
        break
    print(address)
else:
    print("不会执行")

# 使用for else 搜索字典列表
students = [
    {"name": "张三"},
    {"name": "李四"}
]

# 如果找到指定的人输出找到了，如果没有找到也需要给出提示
# 此时就需要使用到for else,省去了java中定义flag的操作
find_name = "张三"
for stu in students:
    print(stu)
    if stu["name"] == find_name:
        print("找到了 %s" % find_name)
        break
else:
    print("没有找到 %s" % find_name)

# 切片赋值
slice_list = [x for x in range(10)]  # 列表推导式
# 使用传入的列表覆盖切片列表
slice_list[:3] = [11, 22, 33, 44, 55]
print(slice_list)
